// 设备检测变量
let isMobile = false;
let deviceType = 'desktop';

// 检测设备类型
function detectDevice() {
    // 检查是否为移动设备
    const userAgent = navigator.userAgent.toLowerCase();
    isMobile = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile|tablet/i.test(userAgent);
    
    // 进一步区分设备类型
    if (isMobile) {
        if (/iphone|ipad|ipod/i.test(userAgent)) {
            deviceType = 'ios';
        } else if (/android/i.test(userAgent)) {
            deviceType = 'android';
        } else {
            deviceType = 'mobile';
        }
    } else {
        deviceType = 'desktop';
    }
    
    console.log('检测到设备类型:', deviceType);
    
    return { isMobile, deviceType };
}

// 根据设备类型调整界面
function adjustInterfaceForDevice(elements) {
    const { 
        uploadContainer, 
        selectFileBtn, 
        toggleCameraBtn, 
        captureNativeBtn, 
        tipsContent 
    } = elements;
    
    if (isMobile) {
        // 移动设备优化
        document.body.classList.add('mobile-device');
        
        // 在移动端显示所有按钮，排列和优化它们
        selectFileBtn.style.display = 'none';
        toggleCameraBtn.style.display = 'inline-block'; 
        
        // 调整原生相机按钮样式
        captureNativeBtn.style.order = '1';
        captureNativeBtn.textContent = '从手机相册选择 ';
        captureNativeBtn.style.width = 'auto';
        
        // 调整启动摄像头按钮样式
        toggleCameraBtn.style.order = '2';
        toggleCameraBtn.textContent = '打开摄像头';
        toggleCameraBtn.style.width = 'auto';
        
        // 确保移动端显示正确的提示文本
        if (tipsContent) {
            tipsContent.innerHTML = '<div class="upload-text">点击上方按钮选择操作</div>';
        }
        
        // 如果是移动设备，添加全屏样式
        uploadContainer.style.maxWidth = '100%';
        uploadContainer.style.margin = '0';
        uploadContainer.style.borderRadius = '0';
        uploadContainer.style.minHeight = '100vh';
        
        // 为iOS设备添加特定样式
        if (deviceType === 'ios') {
            document.body.classList.add('ios-device');
            // iOS设备添加安全区域边距
            document.body.style.paddingTop = 'env(safe-area-inset-top)';
            document.body.style.paddingBottom = 'env(safe-area-inset-bottom)';
        }
    } else {
        // 桌面设备优化
        document.body.classList.add('desktop-device');
        
        // 显示所有按钮
        selectFileBtn.style.display = 'inline-block';
        toggleCameraBtn.style.display = 'inline-block';
        
        // 恢复按钮文字
        toggleCameraBtn.textContent = '打开摄像头';
        
        // 突出拖放上传功能
        tipsContent.innerHTML = '<div class="upload-text">拖拽图片到此处或点击上方按钮上传或拍照 (仅支持JPG/PNG格式)</div>';
        
        // 调整按钮显示顺序
        selectFileBtn.style.order = '1';
        
        // 如果设备有摄像头，检查并调整摄像头按钮
        if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
            toggleCameraBtn.style.order = '2';
        } else {
            toggleCameraBtn.style.display = 'none';
        }
        
        // 隐藏原生相机按钮（桌面端不需要）
        captureNativeBtn.style.display = 'none';
    }
}

export { detectDevice, adjustInterfaceForDevice, isMobile, deviceType };